原本只是想利用capistrano-rails-db 這個套件輕鬆在本地端下指令就好,但rails5有新增一個保護機制,只要drop或者reset會被擋住,只要不要有動到就資料的動作其他其實也蠻正常的,像是cap deploy:db:seed之類的。
是什麼保護機制可以參考這篇:
防止Production数据库被意外清空 | Rails 5
情況:我是用Capistrano部署在機台上的專案web server是Nginx
如何執行rake
其實直接進到機台操作還是最簡單直接的,首先進到專案裡的current資料夾
如果要reset或drop db的話請先關閉web server:$ service nginx stop
再來基本上都可以動rake db的指令了,例如reset:$ RAILS_ENV=production bin/rake db:reset DISABLE_DATABASE_ENVIRONMENT_CHECK=1
DISABLE_DATABASE_ENVIRONMENT_CHECK就是rails5的保護機制,可以參考上面那篇。
都控制玩db之後重新開啟即可:$ service nginx start
如何進入console
一樣到專案裡的current資料夾$ bundle exec rails c production
就可以嘍!